home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume89 / graphics / colors.1 next >
Internet Message Format  |  1989-05-03  |  40KB

  1. Path: xanth!ames!oliveb!sun!rishathra!page
  2. From: page%rishathra@Sun.COM (Bob Page)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v89i112:  color - set screen colors
  5. Message-ID: <102561@sun.Eng.Sun.COM>
  6. Date: 3 May 89 07:07:22 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 1318
  9. Approved: page@sun.com
  10.  
  11. Submitted-by: sco!brianm@uunet.uu.net (Brian Moffet)
  12. Posting-number: Volume 89, Issue 112
  13. Archive-name: graphics/colors.1
  14.  
  15. A SetPalette clone.
  16.  
  17. [uuencoded executable included.  ..bob]
  18.  
  19. # This is a shell archive.
  20. # Remove anything above and including the cut line.
  21. # Then run the rest of the file through 'sh'.
  22. # Unpacked files will be owned by you and have default permissions.
  23. #----cut here-----cut here-----cut here-----cut here----#
  24. #!/bin/sh
  25. # shar: SHell ARchive
  26. # Run the following text through 'sh' to create:
  27. #    color.c
  28. #    color2.c
  29. #    data.c
  30. #    gadgets.c
  31. #    main.c
  32. #    lmkfile
  33. #    setcolor.lnk
  34. #    setcolor.uu
  35. # This is archive 1 of a 1-part kit.
  36. # This archive created: Wed May  3 00:01:01 1989
  37. echo "extracting color.c"
  38. sed 's/^X//' << \SHAR_EOF > color.c
  39. X/*
  40. X**    Brian D. Moffet
  41. X**    June 13, 1988
  42. X**
  43. X**    Placed in the Public Domain, Please keep my name on it
  44. X**    and provide source when you provide the binary.
  45. X**
  46. X**    uunet!sco!alar!brian
  47. X*/
  48. X
  49. X#include <intuition/intuition.h>
  50. X#include <graphics/rastport.h>
  51. X
  52. X
  53. X#define    WINWIDTH    260
  54. X#define    WINHEIGHT    100
  55. X
  56. Xextern char Version[];
  57. Xextern char Author[];
  58. X
  59. Xint    pen = 0, bpen = 1;
  60. Xstruct    Window *Set_Win = NULL;
  61. Xstruct    NewWindow NW;
  62. X
  63. Xextern struct Screen *S;
  64. Xextern int MaxBit;
  65. Xextern USHORT colortable[];
  66. X
  67. XColor_Window( S )
  68. Xstruct Screen *S;
  69. X{
  70. X    register int class;
  71. X    register int code;
  72. X    APTR    ptr;
  73. X    struct IntuiMessage *mess;
  74. X    int i;
  75. X/*
  76. X**    Many hard coded numbers are in here, they shouldn't
  77. X**    be.  I should take the size of the window and scale that,
  78. X**    But this was a quick hack...
  79. X**
  80. X**    The window allows mouse buttons and gadget movement.
  81. X**    Instead of waiting for a gadget, when I get the first one
  82. X**    I enter a fast loop to track the mouse.  I could get better
  83. X**    color updating this way.
  84. X*/
  85. X
  86. X    NW.LeftEdge = NW.TopEdge    =    0;
  87. X    NW.Width            =    WINWIDTH;
  88. X    NW.Height            =    WINHEIGHT;
  89. X    NW.DetailPen = NW.BlockPen    =    -1;
  90. X    NW.IDCMPFlags            =    MOUSEBUTTONS
  91. X                        | CLOSEWINDOW | GADGETDOWN
  92. X                        | GADGETUP;
  93. X    NW.Flags            =    WINDOWCLOSE | WINDOWDRAG |
  94. X                        WINDOWDEPTH | SMART_REFRESH
  95. X                        | ACTIVATE | NOCAREREFRESH |
  96. X                        RMBTRAP;
  97. X    NW.FirstGadget            =    NULL;
  98. X    NW.CheckMark            =    NULL;
  99. X    NW.Title            =    Version;
  100. X    NW.Screen            =    S;
  101. X    NW.Type                =    CUSTOMSCREEN;
  102. X
  103. X    Set_Win = (struct Window *) OpenWindow( &NW );
  104. X
  105. X    if( Set_Win == NULL ) return( -1 );
  106. X
  107. X/*
  108. X**    Draw Boxes for individual colors.  This will handle to 32
  109. X**    colors.
  110. X*/
  111. X
  112. X
  113. X    pen = 1 << MaxBit;
  114. X    for( i = 0; i < pen; i++)
  115. X    {
  116. X        short sx, sy, w, h;
  117. X        unsigned short color = colortable[i];
  118. X
  119. X                SetRGB4( &S->ViewPort, i, (color>>8)&0x000f,
  120. X            (color>>4)&0x000f, (color)&0x000f );
  121. X
  122. X        sx = ((i % (pen/2)) + 1) * WINWIDTH / (pen/2+2);
  123. X        sy = (i < (pen/2)) ? 54 : 63;
  124. X        w = WINWIDTH / (pen/2 + 2) - 2;
  125. X        h = 5;
  126. X        Draw_Box( i, sx, sy, w, h );
  127. X    }
  128. X
  129. X/*
  130. X**    Draw the border
  131. X*/
  132. X
  133. X    Move(Set_Win->RPort,  40, 19);
  134. X    Draw(Set_Win->RPort, 250, 19);
  135. X    Draw(Set_Win->RPort, 250, 52);
  136. X    Draw(Set_Win->RPort,  40, 52);
  137. X    Draw(Set_Win->RPort,  40, 19);
  138. X
  139. X/*
  140. X**    Add Misc Gadgets
  141. X*/
  142. X
  143. X    Add_Gadgets( Set_Win );
  144. X/*
  145. X**    Add the proportional gadgets for the individual colors.
  146. X*/
  147. X
  148. X    Add_Prop( 0, 45, 21, 200, 10 );
  149. X    Add_Prop( 1, 45, 31, 200, 10 );
  150. X    Add_Prop( 2, 45, 41, 200, 10 );
  151. X
  152. X    pen = 0;
  153. X    Set_Gadg_Color();
  154. X
  155. X/*    Process Mouse    */
  156. X
  157. X    while( TRUE ){
  158. X
  159. X/*    Wait for message, the loop until no more movement    */
  160. X
  161. X        Wait( 1 << Set_Win->UserPort->mp_SigBit );
  162. X
  163. X        while( mess = (struct IntuiMessage *)
  164. X                    GetMsg( Set_Win->UserPort ) ){
  165. X
  166. X            class = mess->Class;
  167. X            code = mess->Code;
  168. X            ptr = mess->IAddress;
  169. X            ReplyMsg( mess );
  170. X
  171. X            switch( class ){
  172. X                case CLOSEWINDOW:
  173. X                    CloseWindow( Set_Win );
  174. X                    return( 0 );
  175. X                case MOUSEBUTTONS:
  176. X                    Work_Mouse( code );
  177. X                    break;
  178. X                case GADGETDOWN:
  179. X                    Set_Color( pen );
  180. X                    break;
  181. X                case GADGETUP:
  182. X                    Do_Gadget( ptr );
  183. X                    Set_Gadg_Color();
  184. X                default:
  185. X                    break;
  186. X            }
  187. X        }
  188. X    }
  189. X}
  190. X
  191. X/*
  192. X**    Draw a Box of the appropriate color
  193. X*/
  194. X
  195. XDraw_Box( i, x, y, w, h )
  196. Xint x, y, i, w, h;
  197. X{
  198. X    SetDrMd( Set_Win->RPort, COMPLEMENT );
  199. X    SetAPen( Set_Win->RPort, i );
  200. X    RectFill( Set_Win->RPort, x, y, x+w+2, y+h+2 );
  201. X    SetDrMd( Set_Win->RPort, JAM1 );
  202. X    SetAPen( Set_Win->RPort, i );
  203. X    RectFill( Set_Win->RPort, x+1, y+1, x+w+1, y+h+1 );
  204. X}
  205. X
  206. X/*
  207. X**    Do the mouse tracking
  208. X*/
  209. X
  210. X
  211. XWork_Mouse( arg )
  212. Xint arg;
  213. X{
  214. X    int penno;
  215. X
  216. X    if( Set_Win->MouseY < 52 )
  217. X        return;
  218. X
  219. X    if( arg == SELECTDOWN || arg == MENUDOWN )
  220. X        return;
  221. X
  222. X    if (arg == SELECTUP)
  223. X        pen = ReadPixel( Set_Win->RPort, Set_Win->MouseX,
  224. X                        Set_Win->MouseY );
  225. X    else
  226. X        bpen = ReadPixel( Set_Win->RPort, Set_Win->MouseX,
  227. X                        Set_Win->MouseY );
  228. X
  229. X    Set_Gadg_Color();
  230. X}
  231. X
  232. X/*
  233. X *    The current color box.  The foreground color is
  234. X *    color 1 and the background color is color 2
  235. X */
  236. X
  237. Xstruct IntuiText CColor = {
  238. X    1, 0,
  239. X    JAM2,
  240. X    0, 0,
  241. X    NULL,
  242. X    " -Current Color- ",
  243. X    NULL,
  244. X};
  245. X
  246. X
  247. XSet_Gadg_Color()
  248. X{
  249. X    unsigned short c[3];
  250. X    struct Gadget *G;
  251. X    int i;
  252. X
  253. X    c[0] = colortable[ pen ] & 0x000f;
  254. X    c[1] = ( colortable[ pen ] >> 4 ) & 0x000f;
  255. X    c[2] = ( colortable[ pen ] >> 8 ) & 0x000f;
  256. X
  257. X    G = Set_Win->FirstGadget;
  258. X
  259. X    i = 0;
  260. X
  261. X    while( G != NULL ){
  262. X
  263. X        if( G->GadgetType == PROPGADGET ){
  264. X
  265. X            if( G->GadgetID == 'R' ) i = 2;
  266. X            if( G->GadgetID == 'G' ) i = 1;
  267. X            if( G->GadgetID == 'B' ) i = 0;
  268. X            ModifyProp( G, Set_Win, NULL, FREEHORIZ,
  269. X                (USHORT)((0x1110) * c[i]) , 0, 
  270. X                    (USHORT)(0x0fff), 0 );
  271. X        }
  272. X
  273. X        G = G->NextGadget;
  274. X
  275. X    }
  276. X
  277. X    CColor.FrontPen = pen;
  278. X    CColor.BackPen = bpen;
  279. X
  280. X    PrintIText( Set_Win->RPort, &CColor,
  281. X        (WINWIDTH-IntuiTextLength(&CColor))/2, 75 );
  282. X}
  283. X
  284. X
  285. X/*
  286. X**    This produces a line
  287. X*/
  288. X
  289. Xextern USHORT  SData[];
  290. Xchar *Color_Name[] = {"Red ", "Grn ", "Blu " };
  291. X
  292. Xstruct IntuiText IT = {
  293. X    1, 0,
  294. X    COMPLEMENT,
  295. X    0, 0,
  296. X    NULL,
  297. X    NULL,
  298. X    NULL,
  299. X};
  300. X
  301. X/*
  302. X**    This adds the horizontally moving Proportional Gadgets.
  303. X**    The HorizBody was found mostly by trial and error,
  304. X**    As I found the Doc to be less than helpful.
  305. X*/
  306. X
  307. XAdd_Prop( color, sx, sy, w, h )
  308. Xint color;
  309. Xint sx, sy, w, h;
  310. X{
  311. X
  312. X    static struct Gadget G[3];
  313. X    static struct PropInfo P[3];
  314. X    static struct Image I[3];
  315. X
  316. X    P[color].Flags = FREEHORIZ;
  317. X    P[color].HorizBody = (USHORT)(0x0fff);
  318. X
  319. X    I[color].Width = 4;
  320. X    I[color].Height = 6;
  321. X    I[color].Depth = 1;
  322. X    I[color].ImageData = &SData[0];
  323. X    I[color].PlanePick = 0x01;
  324. X
  325. X    G[color].LeftEdge = sx;
  326. X    G[color].TopEdge  = sy;
  327. X    G[color].Width    = w;
  328. X    G[color].Height   = h;
  329. X
  330. X    G[color].Flags = GADGHBOX | GADGIMAGE;
  331. X    G[color].Activation = GADGIMMEDIATE | RELVERIFY;
  332. X    G[color].GadgetType = PROPGADGET;
  333. X    G[color].GadgetRender = (APTR)&I[color];
  334. X    G[color].SelectRender = NULL;
  335. X    G[color].SpecialInfo = (APTR)&P[color];
  336. X    G[color].GadgetText = NULL;
  337. X    G[color].GadgetID = (int)(*Color_Name[color]);
  338. X
  339. X    IT.IText = (UBYTE *)Color_Name[color];
  340. X    PrintIText(Set_Win->RPort, &IT, sx - IntuiTextLength(&IT), sy );
  341. X
  342. X    AddGadget( Set_Win, &G[color], -1 );
  343. X    OnGadget( &G[color], Set_Win, NULL );
  344. X
  345. X}
  346. SHAR_EOF
  347. echo "extracting color2.c"
  348. sed 's/^X//' << \SHAR_EOF > color2.c
  349. X/*
  350. X**    Brian D. Moffet
  351. X**    June 13, 1988
  352. X**
  353. X**    Placed in the Public domain.
  354. X**    Please allow me to retain credit for this, and please
  355. X**    distribute source with the binaries.
  356. X*/
  357. X
  358. X#include <intuition/intuition.h>
  359. X#include <intuition/screens.h>
  360. X
  361. X
  362. Xextern struct Screen *S;
  363. Xextern int MaxBit;
  364. Xextern USHORT colortable[];
  365. X
  366. Xextern struct Window *Set_Win;
  367. X
  368. X/*
  369. X**    This sets the colors when the mouse is moved.
  370. X*/
  371. X
  372. XSet_Color( pen )
  373. Xint pen;
  374. X{
  375. X    register struct IntuiMessage *I;
  376. X    struct Gadget *G;
  377. X    USHORT *g, *b, *r, class;
  378. X    unsigned int color;
  379. X
  380. X    G = Set_Win->FirstGadget;
  381. X
  382. X    while( G != NULL ){
  383. X        switch( G->GadgetID ){
  384. X            case 'R':
  385. X        r = &( (struct PropInfo *)G->SpecialInfo )->HorizPot;
  386. X                break;
  387. X            case 'G':
  388. X        g = &( (struct PropInfo *)G->SpecialInfo )->HorizPot;
  389. X                break;
  390. X            case 'B':
  391. X        b = &( (struct PropInfo *)G->SpecialInfo )->HorizPot;
  392. X            default:
  393. X                break;
  394. X         }
  395. X         G = G->NextGadget;
  396. X    }
  397. X        
  398. X/*
  399. X**    Mouse Movement while Gadget is down loop
  400. X*/
  401. X
  402. X    while( TRUE ){
  403. X
  404. X        I = (struct IntuiMessage *) GetMsg( Set_Win->UserPort );
  405. X
  406. X    class = I->Class;
  407. X
  408. X    if( I != NULL ) ReplyMsg( I );
  409. X
  410. X        color = ( ( ( *r ) >> 12 ) << 8 ) |
  411. X                ( ( ( *g ) >> 12 ) << 4 ) |
  412. X                ( ( ( *b ) >> 12 )      );
  413. X
  414. X        if( (color) != colortable[ pen ] ){
  415. X
  416. X                SetRGB4( &S->ViewPort, pen, (color>>8)&0x000f,
  417. X            (color>>4)&0x000f, (color)&0x000f );
  418. X                colortable[ pen ] = color;
  419. X        }
  420. X
  421. X        if( class == GADGETUP ) return( 1 );
  422. X    }
  423. X
  424. X}
  425. SHAR_EOF
  426. echo "extracting data.c"
  427. sed 's/^X//' << \SHAR_EOF > data.c
  428. X/*
  429. X**    Brian D. Moffet
  430. X**    June 13, 1988
  431. X**
  432. X**    Placed in the Public domain.
  433. X**    Please allow me to retain credit for this, and please
  434. X**    distribute source with the binaries.
  435. X*/
  436. X
  437. X/*
  438. X *    data for chip ram.
  439. X */
  440. X
  441. Xunsigned short  SData[] =
  442. X{
  443. X    -1,
  444. X    -1,
  445. X    -1,
  446. X    -1,
  447. X    -1,
  448. X    -1,
  449. X};
  450. X
  451. SHAR_EOF
  452. echo "extracting gadgets.c"
  453. sed 's/^X//' << \SHAR_EOF > gadgets.c
  454. X/*
  455. X**    Brian D. Moffet
  456. X**    June 13, 1988
  457. X**
  458. X**    Placed in the Public domain.
  459. X**    Please allow me to retain credit for this, and please
  460. X**    distribute source with the binaries.
  461. X*/
  462. X
  463. X#include <intuition/intuition.h>
  464. X#include <graphics/rastport.h>
  465. X
  466. X#define    BETWEEN    5
  467. X
  468. Xextern int pen, bpen;
  469. Xextern int MaxBit;
  470. Xextern unsigned short colortable[];
  471. Xextern unsigned short oldcolortable[];
  472. Xextern struct Window *Set_Win;
  473. X
  474. XDo_Gadget( addr )
  475. Xregister struct Gadget *addr;
  476. X{
  477. X    switch( addr->GadgetID )
  478. X    {
  479. X        case 1:            /* Make Black and White */
  480. X        {
  481. X            unsigned short r, g, b;
  482. X            int i;
  483. X            for (i = 0; i < (1<<MaxBit); i++)
  484. X            {
  485. X                r = (colortable[i]>>8) & 0x0f;
  486. X                g = (colortable[i]>>4) & 0x0f;
  487. X                b = (colortable[i]>>0) & 0x0f;
  488. X                make_bw(&r, &g, &b);
  489. X                colortable[i] = ((r&15)<<8) | ((g&15)<<4)
  490. X                            | ((b&15));
  491. X                SetRGB4(ViewPortAddress(Set_Win), i, r, g, b);
  492. X            }
  493. X            break;
  494. X        }
  495. X        case 2:        /* Smear of Colors */
  496. X        {
  497. X            int i;
  498. X            if ( pen > bpen)
  499. X                smear( colortable, bpen, pen );
  500. X            else
  501. X                smear( colortable, pen, bpen );
  502. X
  503. X            for (i = 0; i < (1<<MaxBit); i++)
  504. X            {
  505. X                unsigned short r, g, b;
  506. X                r = (colortable[i]>>8) & 0x0f;
  507. X                g = (colortable[i]>>4) & 0x0f;
  508. X                b = (colortable[i]>>0) & 0x0f;
  509. X                SetRGB4(ViewPortAddress(Set_Win), i, r, g, b);
  510. X            }
  511. X            break;
  512. X        }
  513. X        case 3:        /* Switch Colors */
  514. X        {
  515. X            int j, i;
  516. X            unsigned short r, g, b;
  517. X
  518. X            j = colortable[pen];
  519. X            colortable[pen] = colortable[bpen];
  520. X            colortable[bpen] = j;
  521. X            for (i = 0; i < (1<<MaxBit); i++)
  522. X            {
  523. X                r = (colortable[i]>>8) & 0x0f;
  524. X                g = (colortable[i]>>4) & 0x0f;
  525. X                b = (colortable[i]>>0) & 0x0f;
  526. X                SetRGB4(ViewPortAddress(Set_Win), i, r, g, b);
  527. X            }
  528. X            break;
  529. X        }
  530. X        case 4:        /* Make the default palette good */
  531. X        {
  532. X            int i;
  533. X            for (i = 0; i < (1<<MaxBit); i++)
  534. X                oldcolortable[i] = colortable[i];
  535. X            break;
  536. X        }
  537. X        case 5:        /* Copy Foreground to Background */
  538. X        {
  539. X            int i;
  540. X            unsigned short r, g, b;
  541. X
  542. X            colortable[bpen] = colortable[pen];
  543. X            for (i = 0; i < (1<<MaxBit); i++)
  544. X            {
  545. X                r = (colortable[i]>>8) & 0x0f;
  546. X                g = (colortable[i]>>4) & 0x0f;
  547. X                b = (colortable[i]>>0) & 0x0f;
  548. X                SetRGB4(ViewPortAddress(Set_Win), i, r, g, b);
  549. X            }
  550. X            break;
  551. X        }
  552. X        case 6:        /* Make Palette Original */
  553. X        {
  554. X            int i;
  555. X            unsigned short r, g, b;
  556. X
  557. X            for (i = 0; i < (1<<MaxBit); i++)
  558. X            {
  559. X                colortable[i] = oldcolortable[i];
  560. X                r = (colortable[i]>>8) & 0x0f;
  561. X                g = (colortable[i]>>4) & 0x0f;
  562. X                b = (colortable[i]>>0) & 0x0f;
  563. X                SetRGB4(ViewPortAddress(Set_Win), i, r, g, b);
  564. X            }
  565. X            break;
  566. X        }
  567. X        default:
  568. X            break;
  569. X    }
  570. X}
  571. X
  572. X
  573. XAdd_Gadgets( W )
  574. Xstruct Window *W;
  575. X{
  576. X    Add_BW( W );
  577. X    Add_Smear( W );
  578. X    Add_Ex( W );
  579. X    Add_Copy( W );
  580. X    Add_OK( W );
  581. X    Add_Undo( W );
  582. X}
  583. X
  584. X
  585. Xstruct IntuiText BWText = {
  586. X    1, 0,
  587. X    COMPLEMENT,
  588. X    0, 0,
  589. X    NULL,
  590. X    "B/W",
  591. X    NULL,
  592. X};
  593. X
  594. Xstruct Gadget BWGadget = {
  595. X    NULL,
  596. X    10, -9, 0, 8,
  597. X    GADGHBOX | GRELBOTTOM,
  598. X    RELVERIFY,
  599. X    BOOLGADGET,
  600. X    NULL,
  601. X    NULL,
  602. X    NULL,
  603. X    0,
  604. X    NULL,
  605. X    1,
  606. X    NULL
  607. X};
  608. X
  609. X
  610. XAdd_BW( W )
  611. Xstruct Window *W;
  612. X{
  613. X    BWGadget.GadgetText = &BWText;
  614. X    BWGadget.Width = IntuiTextLength(&BWText);
  615. X    AddGadget( W, &BWGadget, -1 );
  616. X    OnGadget( &BWGadget, W, NULL );
  617. X}
  618. X
  619. Xstruct IntuiText SmearText = {
  620. X    1, 0,
  621. X    COMPLEMENT,
  622. X    0, 0,
  623. X    NULL,
  624. X    "Smear",
  625. X    NULL,
  626. X};
  627. X
  628. Xstruct Gadget SmearGadget = {
  629. X    NULL,
  630. X    30, -9, 0, 8,
  631. X    GADGHBOX | GRELBOTTOM,
  632. X    RELVERIFY,
  633. X    BOOLGADGET,
  634. X    NULL,
  635. X    NULL,
  636. X    NULL,
  637. X    0,
  638. X    NULL,
  639. X    2,
  640. X    NULL
  641. X};
  642. X
  643. X
  644. XAdd_Smear( W )
  645. Xstruct Window *W;
  646. X{
  647. X    SmearGadget.GadgetText = &SmearText;
  648. X    SmearGadget.Width = IntuiTextLength(&SmearText);
  649. X    SmearGadget.LeftEdge = BWGadget.LeftEdge + BETWEEN +
  650. X        IntuiTextLength(&BWText);
  651. X    AddGadget( W, &SmearGadget, -1 );
  652. X    OnGadget( &SmearGadget, W, NULL );
  653. X}
  654. X
  655. Xstruct IntuiText ExText = {
  656. X    1, 0,
  657. X    COMPLEMENT,
  658. X    0, 0,
  659. X    NULL,
  660. X    "Exchange",
  661. X    NULL,
  662. X};
  663. X
  664. Xstruct Gadget ExGadget = {
  665. X    NULL,
  666. X    30, -9, 0, 8,
  667. X    GADGHBOX | GRELBOTTOM,
  668. X    RELVERIFY,
  669. X    BOOLGADGET,
  670. X    NULL,
  671. X    NULL,
  672. X    NULL,
  673. X    0,
  674. X    NULL,
  675. X    3,
  676. X    NULL
  677. X};
  678. X
  679. X
  680. XAdd_Ex( W )
  681. Xstruct Window *W;
  682. X{
  683. X    ExGadget.GadgetText = &ExText;
  684. X    ExGadget.Width = IntuiTextLength(&ExText);
  685. X    ExGadget.LeftEdge = SmearGadget.LeftEdge + BETWEEN +
  686. X        IntuiTextLength(&SmearText);
  687. X    AddGadget( W, &ExGadget, -1 );
  688. X    OnGadget( &ExGadget, W, NULL );
  689. X}
  690. X
  691. X
  692. Xstruct IntuiText CopyText = {
  693. X    1, 0,
  694. X    COMPLEMENT,
  695. X    0, 0,
  696. X    NULL,
  697. X    "Copy",
  698. X    NULL,
  699. X};
  700. X
  701. Xstruct Gadget CopyGadget = {
  702. X    NULL,
  703. X    30, -9, 0, 8,
  704. X    GADGHBOX | GRELBOTTOM,
  705. X    RELVERIFY,
  706. X    BOOLGADGET,
  707. X    NULL,
  708. X    NULL,
  709. X    NULL,
  710. X    0,
  711. X    NULL,
  712. X    5,
  713. X    NULL
  714. X};
  715. X
  716. X
  717. XAdd_Copy( W )
  718. Xstruct Window *W;
  719. X{
  720. X    CopyGadget.GadgetText = &CopyText;
  721. X    CopyGadget.Width = IntuiTextLength(&CopyText);
  722. X    CopyGadget.LeftEdge = ExGadget.LeftEdge + BETWEEN +
  723. X        IntuiTextLength(&ExText);
  724. X    AddGadget( W, &CopyGadget, -1 );
  725. X    OnGadget( &CopyGadget, W, NULL );
  726. X}
  727. X
  728. Xstruct IntuiText OKText = {
  729. X    1, 0,
  730. X    COMPLEMENT,
  731. X    0, 0,
  732. X    NULL,
  733. X    "OK",
  734. X    NULL,
  735. X};
  736. X
  737. Xstruct Gadget OKGadget = {
  738. X    NULL,
  739. X    30, -9, 0, 8,
  740. X    GADGHBOX | GRELBOTTOM,
  741. X    RELVERIFY,
  742. X    BOOLGADGET,
  743. X    NULL,
  744. X    NULL,
  745. X    NULL,
  746. X    0,
  747. X    NULL,
  748. X    4,
  749. X    NULL
  750. X};
  751. X
  752. X
  753. XAdd_OK( W )
  754. Xstruct Window *W;
  755. X{
  756. X    OKGadget.GadgetText = &OKText;
  757. X    OKGadget.Width = IntuiTextLength(&OKText);
  758. X    OKGadget.LeftEdge = CopyGadget.LeftEdge + BETWEEN +
  759. X        IntuiTextLength(&CopyText);
  760. X    AddGadget( W, &OKGadget, -1 );
  761. X    OnGadget( &OKGadget, W, NULL );
  762. X}
  763. X
  764. X
  765. X
  766. Xstruct IntuiText UndoText = {
  767. X    1, 0,
  768. X    COMPLEMENT,
  769. X    0, 0,
  770. X    NULL,
  771. X    "Undo",
  772. X    NULL,
  773. X};
  774. X
  775. Xstruct Gadget UndoGadget = {
  776. X    NULL,
  777. X    30, -9, 0, 8,
  778. X    GADGHBOX | GRELBOTTOM,
  779. X    RELVERIFY,
  780. X    BOOLGADGET,
  781. X    NULL,
  782. X    NULL,
  783. X    NULL,
  784. X    0,
  785. X    NULL,
  786. X    6,
  787. X    NULL
  788. X};
  789. X
  790. X
  791. XAdd_Undo( W )
  792. Xstruct Window *W;
  793. X{
  794. X    UndoGadget.GadgetText = &UndoText;
  795. X    UndoGadget.Width = IntuiTextLength(&UndoText);
  796. X    UndoGadget.LeftEdge = OKGadget.LeftEdge + BETWEEN +
  797. X        IntuiTextLength(&OKText);
  798. X    AddGadget( W, &UndoGadget, -1 );
  799. X    OnGadget( &UndoGadget, W, NULL );
  800. X}
  801. SHAR_EOF
  802. echo "extracting main.c"
  803. sed 's/^X//' << \SHAR_EOF > main.c
  804. X/*
  805. X**    Brian D. Moffet
  806. X**    June 13, 1988
  807. X**
  808. X**    Placed in the Public domain.
  809. X**    Please allow me to retain credit for this, and please
  810. X**    distribute source with the binaries.
  811. X**
  812. X*/
  813. X
  814. X#include <intuition/intuition.h>
  815. X#include <graphics/gfxbase.h>
  816. X#include <intuition/intuitionbase.h>
  817. X#include <intuition/screens.h>
  818. X
  819. X#include <stdio.h>
  820. X
  821. X/*
  822. X**    Easier to type IB than IntuitionBase
  823. X*/
  824. X
  825. X#define IB IntuitionBase
  826. X#define GB GfxBase
  827. X
  828. Xextern struct IntuitionBase *IntuitionBase;
  829. Xstruct GfxBase *GfxBase=NULL;
  830. X
  831. Xstruct Screen *S;
  832. Xint MaxBit;
  833. XUSHORT oldcolortable[32];
  834. XUSHORT colortable[32];
  835. X
  836. Xchar Version[]="Setcolor 1.1  PD";
  837. Xchar Author[]="Brian Moffet sco!brianm";
  838. X
  839. Xchar *Usage[] = {
  840. X    "setcolor [-num]",
  841. X    "    -num: number of seconds to delay before attaching to the",
  842. X    "          active window.",
  843. X    " Gadget Definitions:",
  844. X    "    B/W: make the palette a grey scale palette",
  845. X    "    Smear: blend from color 1 (letters in box) to color 2",
  846. X    "    Exchange: exchange color 1 and color 2",
  847. X    "    Copy: copy color 1 and color 2",
  848. X    "    OK: Set the palette with your new colors",
  849. X    "    Undo: reset colors from last OK or beginning",
  850. X    NULL
  851. X};
  852. X
  853. X/*
  854. X**    setcolor [num]
  855. X**    where num is the number of seconds befor program takes
  856. X**    action and attaches itself to your window.
  857. X*/
  858. X
  859. Xmain( argc, argv )
  860. Xint argc;
  861. Xchar *argv[];
  862. X{
  863. X    int i;
  864. X    int del;
  865. X
  866. X    if (!strcmp( argv[1], "-h"))
  867. X    {
  868. X        puts( Version );
  869. X        puts( Author );
  870. X        for (i = 0; Usage[i]; i++)
  871. X            puts( Usage[i] );
  872. X        exit( 0 );
  873. X    }
  874. X
  875. X    del  = atoi( argv[1] );
  876. X    if( del <= 0 ) del = 0;
  877. X
  878. X    IB = (struct IB *)OpenLibrary( "intuition.library", 0 );
  879. X    if( IB == NULL )
  880. X    {
  881. X        fprintf( stderr, "Error Opening IB\n" );
  882. X        exit( 1 );
  883. X    }
  884. X    GB = (struct GB *)OpenLibrary( "graphics.library", 0 );
  885. X    if( GB == NULL )
  886. X    {
  887. X        CloseLibrary( IB );
  888. X        fprintf( stderr, "Error Opening GB\n" );
  889. X        exit( 2 );
  890. X    }
  891. X
  892. X/*
  893. X**    Avoid the Delay( 0 ) bug
  894. X**    Part of my background is to avoid system calls whenever
  895. X**    Possible.  I would have never found the Delay( 0 ) problem..
  896. X*/
  897. X
  898. X    if( del )    Delay( del * 50 );
  899. X
  900. X    S = IB->ActiveScreen;
  901. X    MaxBit = S->BitMap.Depth;
  902. X
  903. X    for( i = 0; i < 32; i++ ) 
  904. X        oldcolortable[i] = colortable[i] =
  905. X            GetRGB4( S->ViewPort.ColorMap, i );
  906. X
  907. X    Color_Window( S );
  908. X
  909. X    i = 32;
  910. X    while( --i >= 0 )
  911. X    {
  912. X        unsigned short color = oldcolortable[i];
  913. X
  914. X                SetRGB4( &S->ViewPort, i, (color>>8)&0x000f,
  915. X            (color>>4)&0x000f, (color)&0x000f );
  916. X    }
  917. X
  918. X    CloseLibrary( GB );
  919. X    CloseLibrary( IB );
  920. X}
  921. X
  922. X/*
  923. X *    Make a color palette into a gray-scale palette.
  924. X */
  925. X
  926. Xmake_bw( r, g, b )
  927. Xunsigned short *r, *g, *b;
  928. X{
  929. X    unsigned short v;
  930. X
  931. X    if (*r == *g && *g == *b)
  932. X        return;            /* only shades of grey. */
  933. X
  934. X    v = (*r * 298 + *g * 588 + *b * 114) / 1000;
  935. X    *r = v;
  936. X    *g = v;
  937. X    *b = v;
  938. X}
  939. X
  940. X/*
  941. X *    get colors to go "smoothly" from color 1 to color 2
  942. X */
  943. X
  944. Xsmear( c, begin, end )
  945. Xunsigned short *c;
  946. Xint begin, end;
  947. X{
  948. X    int d = (end - begin);
  949. X    int rd, gd, bd;
  950. X    unsigned short r, g, b;
  951. X    int i;
  952. X
  953. X    r = (c[begin] >> 8) & 0x0f;
  954. X    g = (c[begin] >> 4) & 0x0f;
  955. X    b = (c[begin] >> 0) & 0x0f;
  956. X
  957. X    rd = ((c[end] >> 8) & 0x0f) - r;
  958. X    gd = ((c[end] >> 4) & 0x0f) - g;
  959. X    bd = ((c[end] >> 0) & 0x0f) - b;
  960. X
  961. X    for (i = 0; i < d; i++)
  962. X    {
  963. X        int j = (i + begin);
  964. X
  965. X        c[j] = ((r + (i * rd) / d) & 0x0f) << 8
  966. X            | ((g + (i * gd) / d) & 0x0f) << 4
  967. X            | ((b + (i * bd) / d) & 0x0f);
  968. X        
  969. X    }
  970. X}
  971. SHAR_EOF
  972. echo "extracting lmkfile"
  973. sed 's/^X//' << \SHAR_EOF > lmkfile
  974. XCFLAGS=-b0 -cw -v
  975. XOBJ=data.o color.o color2.o main.o gadgets.o
  976. X
  977. Xcolor: $(OBJ)
  978. X    blink with setcolor.lnk
  979. X
  980. Xdata.o:    data.c
  981. X    lc $(CFLAGS) -abd data
  982. SHAR_EOF
  983. echo "extracting setcolor.lnk"
  984. sed 's/^X//' << \SHAR_EOF > setcolor.lnk
  985. XFROM LIB:c.o+color.o+color2.o+main.o+data.o+gadgets.o
  986. XTO setcolor
  987. XLIB +LIB:lc.lib+LIB:amiga.lib
  988. SHAR_EOF
  989. echo "extracting setcolor.uu"
  990. sed 's/^X//' << \SHAR_EOF > setcolor.uu
  991. X
  992. Xbegin 644 setcolor
  993. XM```#\P`````````0``````````\```69```!V@```!D```!-````4````.<`K
  994. XM``"(````(D````,```&@````:0```10````%````&@```#<````I```#Z0``W
  995. XM!9DD2"0`2?D`````1_D```'@<@`@/````)Q@`B;!4<C__"QX``0I3@(8*4\"+
  996. XM($*L`APF;@$4<``B/```,`!.KO[.*6L`F`(42JL`K&<``'`@#Y"O``0&@```-
  997. XM`(`I0`'D80`!+B!K`*S1R-'((F@`$-/)T\D@`G(`$ADI20(HT(%2@$)G4H`"4
  998. XM0/_^G\!5@$)W"``@`E.`U($?L@``(`!3@E'(__8?O``@(`!3@A^Q(``@`%'*K
  999. XM__@B3R\)8```>"EK`#H!Y'!_4H#1K`'D80``PD'K`%Q.KOZ`0>L`7$ZN_HPIJ
  1000. XM0`(<+P`D0"`J`"1G$BQL!$`@0"(H```I00(43J[_@B(J`"!G&B0\```#[4ZN4
  1001. XM_^(I0`(D9PKEB"!`)V@`"`"D(&P"'"\(2&P!X"!H`"0I:``$`BA.N@!X3KH%7
  1002. XM.'``8`0@+P`$+P`@+`(,9P0@0$Z03KH4="QX``0B;`1`3J[^8DZZ`$Y*K`(<A
  1003. XM9QHB+`(D9P1.KO_<+'@`!$ZN_WPB;`(<3J[^AB`?+FP"($YU<&1@M$/Z`!!PE
  1004. XM`$ZN_=@I0`1`9^Q.=61O<RYL:6)R87)Y`$YU3G5(YP<P+B\`&"9O`!PL+P`@*
  1005. XM+P=.NA*06$\D0"`*9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ#2!/[P`,+P8OW
  1006. XM"R\J``1.N@\03^\`#"H`2JP!^&<$</]@`B`%3-\,X$YU``````````!P84Y5A
  1007. XM_\1(YR<P)F\`7"1O`&!^`'P`>@!P`!M\`"#_^W(`*T'_]G3_*T+_\D'M_]`;^
  1008. XM0/_Q&T#__"M!_^0K0?_H*TC_S$H39T)P`!`3<AA=06LXL'L0"&;V3OL0!``CI
  1009. XM8```(``@8```%@`K8```#``M8````GX!8`Y\`6`*>@%@!AM\``'__%*+8+H0+
  1010. XM$W(PL`%F!E*+&T'_^W`JL!-F$"!20^@`!"2)*U#_]E*+8`Y(;?_V+PM.N@HT+
  1011. XM4$_7P!`3<BZP`68F4HMP*K`39A`@4D/H``0DB2M0__)2BV`.2&W_\B\+3KH*=
  1012. XM!E!/U\`0$W)LL`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;<@`2`!M`__!P,%U`Q
  1013. XM:P`"5+)[``AF]$[[``0`8V```BH`<V```>@`6&```7X`>&```7@`<&```5X`_
  1014. XM;V```0P`=6```.(`9&````)*+?_Q9PP@4D/H``0DB2`08`H@4D/H``0DB2`09
  1015. XM*T#_[&P*<@%$K?_L*T'_Z$JM_^AG!'`M8`I*!F<$<"M@`G`@&T#_T'``$`8B8
  1016. XM+?_H@H!P`!`%@H!G"%*M_\Q2K?_D+RW_["\M_\Q.N@B64$\K0/_(("W_\DJ`E
  1017. XM:@9R`2M!__(@+?_((BW_\I*`2.T``O_$;RX@;?_,(DC3P6`"$MA3@&3Z<``00
  1018. XM+?_[(BW_Q"!M_\Q@`A#`4X%D^B`M__(K0/_(T:W_Y$'M_]`K2/_,2@=G``%0*
  1019. XM&WP`(/_[8``!1DHM__%G#"!20^@`!"2)(!!@"B!20^@`!"2)(!`K0/_L8`#_-
  1020. XM8DHM__%G#"!20^@`!"2)(!!@"B!20^@`!"2)(!`K0/_L2BW__&<2(&W_S!#\'
  1021. XM`#!R`2M!_^0K2/_,+P`O+?_,3KH'\%!/*T#_R&``_R@;?``P__L@+?_R2H!J0
  1022. XM!G`(*T#_\DHM__%G#"!20^@`!"2)(!!@"B!20^@`!"2)(!`K0/_L2BW__&<6?
  1023. XM(&W_S!#\`#`0_`!X<@(K0?_D*TC_S"\`+RW_S$ZZ!\Q03RM`_\AP6+`M__!F5
  1024. XM`/Z^2&W_T$ZZ!FA83V``_K`@4D/H``0DB2)0*TG_S&8(0?H`W"M(_\P@;?_,%
  1025. XM2AAF_%.(D>W_S"M(_^0@+?_R2H!K*K'`;R8K0/_D8"!P`2M`_^0@4D/H``0DS
  1026. XMB2`0&T#_T$(M_]%@!G``8```C"`M_^0B+?_VLH!L"'0`*T+_]F`$D:W_]DH'\
  1027. XM9S93K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.)3K?_V;4AP`!`M__LO&
  1028. XM`"!M`!!.D%A/8.A3K?_V;1)P`!`M__LO`"!M`!!.D%A/8.A3K?_D;1AP`"!M#
  1029. XM_\P0&"\`*TC_S"!M`!!.D%A/8.(@"TS?#.1.74YU``!.5?_V2.<!,"9O`!XD'
  1030. XM;P`B*VT`$/_V'AI*!V<T<"6^`&8BL!)F!%**8!HO"TAM__8O"F$`^\Q/[P`,^
  1031. XM*T#_^F<$)$!@TG``$`<O`$Z36$]@QDS?#(!.74YU3E7_\$CG(3(F;P`L#*P`[
  1032. XM```@`Z9L``"&$!-R(+`!9PQR";`!9P9R"K`!9@12BV#H2A-G:"`L`Z;E@%*LM
  1033. XM`Z9![`.NT<`D2'`BL!-F)E*+)(M*$V<*<"*P$V<$4HM@\DH39@Q(>``!3KH.4
  1034. XM>%A/8)Y"&V":)(M*$V<8$!-R(+`!9Q!R";`!9PIR"K`!9P12BV#D2A-F`F`&=
  1035. XM0AM@`/]R2JP#IF8&(&P"'&`$0>P#KBE(`ZI*K`.F9GQ!^@$D0^P#;"+8(M@B8
  1036. XMV"+8,I`B;`(<(&D`)$AX`"@O*``$2&P#;$ZZ!'Y/[P`,0>P#;"(()#P```/N^
  1037. XM+&P$0$ZN_^(I0`(P*4`".'($*4$"-"E``D`I00(\Y8"3R2QX``0K0/_P3J[^=
  1038. XMVB!M__`B0"-H``@`I'X`*T#_]&`J+&P$0$ZN_\HI0`(P3J[_Q"E``CA!^@"F4
  1039. XM(@@D/````^U.KO_B*4`"0'X$(`<`0(`!@:P"+"`'`$"``H&L`C0`K```@`,"$
  1040. XM/$JL`(!G!'``8`8@/```@``N`$*L`#0@!P!```$I0``P<`$I0`!6(`<`0``"Y
  1041. XM*4``4G`"*4``>"`'`$``@"E``'1!^@KR*4@"$"\L`ZHO+`.F3KH`,D*73KH([
  1042. XM<$SM3(3_W$Y=3G5C;VXZ,3`O,3`O,S(P+S@P+P`J`````````````````$[YH
  1043. XM`````````````````````````````````````'!A+PLF;P`(2JL`%&<,""L`7
  1044. XM`P`;9@1P`&`V+RP!W$ZZ!VY83R=```0G0``02H!F"G`,*4`$/'#_8!8G;`'<`
  1045. XM`!1P\\&K`!AP`"=```PG0``()E].=0``````````````````3E7_[$CG+Q`N_
  1046. XM+P`T)F\`."@'<#'`JP`89P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`%&8`*
  1047. XM`(0(*P`"`!MF>G``)T``#'+_OH%G``)"+PM.NO].6$]*@&<,".L`!0`;</]@'
  1048. XM``(J".L``0`;2@9G#B`K`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@:P`$0
  1049. XM0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6""L`@
  1050. XM`@`;9UAP_[Z`9@9P`&```<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O*P`<M
  1051. XM*T'_\$ZZ]]1/[P`,*@!@&G(!+P%(;?__+RL`'"M!__!.NO>X3^\`#"H`?O]@+
  1052. XM``#@".L``0`;2@9G4G#_OH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00O``-R
  1053. XM(BL`#$J!:PHO"R\`80#^KE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,2H%KL
  1054. XM``$<?O\@*P`$D*L`$"M`__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ!(!/[P`,J
  1055. XM*T#_[$H&9SA3K?_L;3)"IR\M_^PO*P`<3KH$8$AX``%(;?_]+RL`'$ZZ`Y!/S
  1056. XM[P`82JP!^&8*$"W__7(:L`%GR"\M__`O*P`0+RL`'$ZZ]MA/[P`,*@!@`GH`<
  1057. XM</^Z@&8(".L`!0`;8`RZK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,8!@(Q
  1058. XM*P`"`!MG"'(`)T$`#&`((BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@:P`$7
  1059. XM0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`89P1P/
  1060. XM_V`,</^X@&8$<`!@`B`$3-\(]$Y=3G4-"@````!(YR`P)F\`$"1+2A)G)'``(
  1061. XM$!)![`#9"#```0@`9PIR`!(`=""2@F`$<@`2`!2!4HI@V"`+3-\,!$YU`````
  1062. XM``````!P84Y5__A(YP,P)F\`("1O`"0N+P`H($I*&&;\4XB1RBP(($M*&&;\%
  1063. XM4XB1RR`((DO3P"M)__B\AV,"+`<@!B!*8`(2V%.`9/H@;?_X0C!H`"`+3-\,R
  1064. XMP$Y=3G4@;P`$(F\`"!(8LAEF"$H!9O9P`$YU;@1P_TYU<`%.=2\+)F\`"'``V
  1065. XM$!-![`#9"#```P@`9P12BV#L(`LF7TYU("\`""!O``1.5?_T(D]R"DZZ!A0&(
  1066. XM00`P$L%*@&;P(`D0X;_)9OI"$)"/3EU.=0``("\`""!O``1.5?_T(D\B``)!;
  1067. XM``<&00`P$L'FB&;P(`D0X;_)9OI"$)"/3EU.=0``,#$R,S0U-C<X.6%B8V1ER
  1068. XM9B`O``@@;P`$0^\`!#(``D$`#Q+[$-SHB&;R(`DB#UB!$.&RB6;Z0A"0@4YUP
  1069. XM(&\`!")(<@!P`"\"#!``*V<&#!``+68"4D@0&`0``#!M$@P```EN#"0!Y8'26
  1070. XM@M*!TH!@Y@P1`"UF`D2!)!\@"%.`(&\`"""!D(E.=4Y5_^A(YP$R+B\`-$J'$
  1071. XM;@9P_V```-)P"+Z`9`(N`"`'5H`N``)'__PD;0`((&T`"-''WZP`%$/L`!`F8
  1072. XM42M(__`K2?_T(`MG``"0($L@*P`$T<`K2/_L(FW_\+?)8Q`DBR5'``0L;?_T!
  1073. XM+(IP`&!XM\EF&BQ3)(X@*P`$(@#2AR5!``0L;?_T+(IP`&!:M<AD")^L`!1P'
  1074. XM_V!.M<AF+$J39PX@4[/(8PB?K``4</]@.-^K``1*DV<.L]-F"B`I``31JP`$P
  1075. XM)I%P`&`>*TO_]"MM_^S_Z"938`#_;B!M__0@BD*2)4<`!'``3-],@$Y=3G4`!
  1076. XM`````````'!A2.<',"XO`!@F;P`<+"\`("\'3KH%_%A/)$`@"F8$</]@'B\&8
  1077. XM+PLO*@`$3KH#7$_O``PJ`$JL`?AG!'#_8`(@!4S?#.!.=0``2.<!$"9O``Q^[
  1078. XM`!X;2H=G,E.L`$9M%B!L`#Y#Z``!*4D`/B`'$(!R`!(`8-P@!W(`$@!(;``ZA
  1079. XM+P%.NOHF4$\B`&#&4ZP`1FT6(&P`/D/H``$I20`^<`H0@'(`$@!@$$AL`#I(A
  1080. XM>``*3KKY^%!/(@`@`4S?"(!.=0``2.</$"XO`!@L+P`<*B\`("\'3KH%/%A/L
  1081. XM)D`@"V8$</]@'B\%+P8O*P`$3KH"($_O``PH`$JL`?AG!'#_8`(@!$S?"/!.+
  1082. XM=0``````````<&%(YP,P+B\`%$J';@9P`&```*1P"+Z`9`(N`"`'5H`N``)'0
  1083. XM__Q%[``0)E(@"V=`("L`!+"';3*PAV8,(%,DB)^L`!0@"V!N("L`!)"'<@BP;
  1084. XM@646($O1QR2()$@DDR5```2?K``4(`M@3"1+)E-@O"`'(BP`A-"!4X!.N@**B
  1085. XM(BP`A$ZZ`F(L`%"&(`96@"P``D;__"\&3KH&"EA/)D`@"V<2+P8O"TZZ_5(N=
  1086. XMAV$`_U103V`"<`!,WPS`3G4``````````'!A+P<N+P`(+P=.NO\R6$\N'TYUX
  1087. XM``!(YP$@+B\`#%*L!#@@;`0T4Z@`#&T6(F@`!$7I``$A2@`$(`<2@'(`$@!@*
  1088. XM$B`'<@`2`"\(+P%.NOB(4$\B`$S?!(!.=4Y5``!(YP`P)F\`$"1O`!1"K`0X7
  1089. XM*4L$-$AM`!`O"DAZ_YQ.NO6$+HM(>/__3KKX3B`L!#A,[0P`__A.74YU``!('
  1090. XMYP,0+B\`$$?L`!@@"V<T""L``@`;9B@(*P`!`!MG("`K``20JP`0+`!*AF<2[
  1091. XM+P8O*P`0+RL`'$ZZ\,9/[P`,)E-@R"\'3KH$6%A/3-\(P$YU``!(YS<0+B\`(
  1092. XM'"9O`"`L+P`D2JP"$&<$3KH#@$*L`?@B!R0+)@8L;`1`3J[_T"H`</^Z@&8.G
  1093. XM3J[_?"E``?AP!2E`!#P@!4S?".Q.=0``2.<_`"XO`!PL+P`@*B\`)$JL`A!G,
  1094. XM!$ZZ`S1"K`'X(`53@"(')`8F`"QL!$!.KO^^*`!P_[B`9@Y.KO]\*4`!^'`62
  1095. XM*4`$/"`%#(`````"9Q8,@`````%G"$J`9A@@!F`4(`30AF`.(@=T`'8`+&P$.
  1096. XM0$ZN_[Y,WP#\3G4``$CG-Q`N+P`<)F\`("PO`"1*K`(09P1.N@*X0JP!^"('+
  1097. XM)`LF!BQL!$!.KO_6*@!P_[J`9@Y.KO]\*4`!^'`%*4`$/"`%3-\([$YU```O\
  1098. XM!RXO``A*K`(09P1.N@)V(@<L;`1`3J[_W'``+A].=4CG,``D`"8!2$)(0\3!_
  1099. XMQL#`P=1#2$)"0M""3-\`#$YU2H!J```>1(!*@6H```Q$@6$``"!$@4YU80``^
  1100. XM&$2`1(%.=4J!:@``#$2!80``!D2`3G4O`DA!-`%F```B2$!(04A"-`!G```&+
  1101. XMA,$P`DA`-`"$P3`"2$(R`B0?3G4O`W80#$$`@&0```;AF5%##$$(`&0```;I3
  1102. XMF5E##$$@`&0```;EF55#2D%K```&XYE30S0`YJA(0D)"YJI(0X#!-@`P`C0#[
  1103. XM2$'$P9""9```"%-#T(%D_G(`,@-(0^>X2$#!028?)!].=4Y5_YY(YS,R?@`@M
  1104. XM;`(H'BC__W!/OH!O`BX`(`=#[?^O8`(2V%.`9/I"-7BOD\DL>``$3J[^VB9`4
  1105. XM2JL`K&=,("L`K.6`)$`L*@`X2H9F!"PK`*!*AF<T(@9!^@"R)`AV"RQL!$!.J
  1106. XMKO_0($=2AR`(&[P`"@BO(@9![?^O)`@F!RQL!$!.KO_0</]@3DJL!#!F$D/Z]
  1107. XM`(9P`"QX``1.KOW8*4`$,$'M_Z\I2`"H2'@`/$AX`/IP`"\`+P!(;`#$2&P`Q
  1108. XML$AL`)Q"ITZZ`0A/[P`@4X!G!'#_8`)P`$S?3,Q.74YU*BH@57-E<B!!8F]R_
  1109. XM="!297%U97-T960@*BH``$-/3E1)3E5%``!!0D]25``J*BH@0G)E86LZ(`!I=
  1110. XM;G1U:71I;VXN;&EB<F%R>0```````````````````"\'+B\`"'``*4`!^$J';
  1111. XM:R*^K```;!P@!^>`0>P"+$JP"`!G#B`'YX!![`(LT<`@"&`(<`DI0`0\<``NI
  1112. XM'TYU``````````!P84CG`0)P`"(\```P`"QX``1.KO[.+@`"AP``,`!*AV8$U
  1113. XM<`!@($JL`A!G&"!L`A!.D$J`9@1P`&`,2'@`%$ZZ`'983R`'3-]`@$YU8;1.T
  1114. XM=0``2.<P,BQL!#`@;P`8(F\`'"1O`"`F;P`D("\`*"(O`"PD+P`P)B\`-$ZN.
  1115. XM_J1,WTP,3G4``$Y5__PO"R9O`!`@"V8$<`!@%B\+3KKW#B9`2&W__"\+3KKWV
  1116. XMOB`M__PF;?_X3EU.=4CG!P`N+P`0("P``%.`+`!*1FLP(`9(P.>`0>P"+"HPA
  1117. XM"`!*!6<:"`4``F84(`9(P.>`0>P"+"\P"`1.NOR,6$]31F#,+P=.NNNF6$],Z
  1118. XMWP#@3G4``$CG."(L;`0P3.\'```83.\`'P`D3J[_9$S?1!Q.=0``2.<`,B9L/
  1119. XM!$0@"V<4)%,B2R`K``@L>``$3J[_+B9*8.B1R"E(!$@I2`1$3-],`$YU2.<!G
  1120. XM,BXO`!1P#-Z`(`=R`"QX``1.KO\Z)D`@"V8$<`!@.B='``A%[`1$(&H`!"=(D
  1121. XM``21R":(2I)F`B2+2JH`!&<&(FH`!"*+)4L`!$JL``1F!"E+``1!ZP`,(`A,<
  1122. XMWTR`3G4``````````````````````^P````!````!0``"&X````"````"P``F
  1123. XM``P````&`````````_(```/I```!VDY5_]Y(YS\0)F\`1G``,\````$$,\``"
  1124. XM``$",_P!!````08S_`!D```!"'#_$\````$+$\````$*(_P```)H```!#"/\[
  1125. XM``,0#@```1"1R"/(```!%"/(```!&"/\````!````1PCRP```2`S_``/```!=
  1126. XM,$AY```!`DZZ!HY83R/`````"&8&</]@``*`<`$B.0````3CH"/``````'H`/
  1127. XMNKD`````;```V"`%T(!!^0```$C1P#`00>L`+'(`,@#@@70/PH)V`#8`Z(/&`
  1128. XM@G@`.`#(@B\$+P,O`2\%+P@[0/_B3KH&7$_O`!0@.0`````B`$J!:@)2@>*!\
  1129. XM(`4O00`<3KH%ZE*!(#P```$$3KH&4"(O`!PD`52"(@).N@70.T#_ZKJO`!QLX
  1130. XM!'(V8`)R/R0Y`````&H"4H+B@E2"(#P```$$.T'_Z"("3KH%HE6`<@4T+?_J#
  1131. XM2,(V+?_H2,,[0/_F2,`[0?_D2,$O`2\`+P,O`B\%80`!HD_O`!12A6``_R)(;
  1132. XM>``32'@`*"!Y````""\H`#).N@5D2'@`$TAX`/H@>0````@O*``R3KH%2$AX:
  1133. XM`#1(>`#Z('D````(+R@`,DZZ!3)(>``T2'@`*"!Y````""\H`#).N@4<2'@`&
  1134. XM$TAX`"@@>0````@O*``R3KH%!BZY````"$ZZ!1I(>``*2'@`R$AX`!5(>``MB
  1135. XM0J=A``-"3^\`4$AX``I(>`#(2'@`'TAX`"U(>``!80`#)DAX``I(>`#(2'@`8
  1136. XM*4AX`"U(>``"80`##D*Y`````&$``?I/[P`H('D````((&@`5G``$"@`#W(!P
  1137. XMX:$O`4ZZ!,Q83R!Y````""\H`%9.N@2D6$\K0/_P2H!GS"!`+B@`%'P`/"@`7
  1138. XM&"MH`!S_]"\`3KH$3%A/(`=R(`1!``AKQ+"[$`AF]$[[$`8```!`8```0@``[
  1139. XM`"!@```J````"&```!@```(`8````B\Y````"$ZZ!')P`&`L+P9A``#F6$]@[
  1140. XM@B\Y`````$ZZ!&!83V``_W0O+?_T3KH$!&$``4!83V``_V),[0C\_\).74YUE
  1141. XM3E4``$CG/P`N+P`@+"\`)"HO`"@H+P`L2'@``B!Y````""\H`#).N@/\+H<@9
  1142. XM>0````@O*``R3KH#L"`$T(94@"(M`!C2A52!+H$O`"\%+P8@>0````@O*``R7
  1143. XM3KH#L$*7('D````(+R@`,DZZ`[@NAR!Y````""\H`#).N@-L(`92@"(%4H$DM
  1144. XM!M2$4H(F!=:M`!A2@RZ#+P(O`2\`('D````(+R@`,DZZ`V1,[0#\_^A.74YUQ
  1145. XM3E7__"\'+B\`$"!Y````"#`H``QR-+!!;5IR:+Z!9U1R:;Z!9TYR=-*!OH%FE
  1146. XM(#(H``Y(P4C`+P`O`2\H`#).N@-:3^\`#"/``````&`B,"@`#DC`,B@`#$C!R
  1147. XM+P$O`"\H`#).N@,V3^\`#"/`````!&$```@N'TY=3G5.5?_R+P<@.0````#0Q
  1148. XM@$'Y````2")(T\!R#\)1.T'_^B)(T\`R$>A)`D$`#SM!__S1P#`0X$@"0``/,
  1149. XM.T#__B!Y````""MH`#[_]GX`2JW_]F=D<`,@;?_VL&@`$&9.,"@`)G)2L$%F^
  1150. XM`GX"<D>P068"?@%R0K!!9@)^`"`'T(`R-0CZPOP1$'``,`%R`"\!2'@/_R\!>
  1151. XM+P!(>``"+P$O.0````@O"$ZZ`EQ/[P`@(&W_]BM0__9@EB`Y`````!/`````@
  1152. XM'B`Y````!!/`````'TAY````'DZZ`A0B/````022@$J!:@)2@>*!2'@`2R\!'
  1153. XM2'D````>('D````(+R@`,DZZ`>0N+?_N3EU.=4Y5__A(YS\P+B\`,"PO`#0JJ
  1154. XM+P`X*"\`/"`'<A9.N@'R0?D```"$(DC3P#*\``(B2-/`,WP/_P`&+T``("`'%
  1155. XM<A1.N@'.0_D```#&)$G5P#5\``0`!"1)U<`U?``&``8D2=7`-7P``0`()$G57
  1156. XMP"5\```````*)$G5P!5\``$`#B]``"0@!W(L3KH!B$7Y`````"9*U\`B!C=!;
  1157. XM``0F2M?`)`4W0@`&)DK7P"8$-T,`""9*U\`B+0`8-T$`"B9*U\`W?``%``PF'
  1158. XM2M?`<@,W00`.)DK7P#=!`!`F2M?`(B\`)-/!)TD`$B)*T\"7RR-+`!8B2M/`A
  1159. XM(B\`(-'!(T@`(B!*T<`A2P`:U<`@!^6`0?D```!$(DC3P"91$A-(@4C!-4$`1
  1160. XM)M'`(]````!<2'D```!03KH`L"(&DH`NA2\!2'D```!0('D````(+R@`,DZZO
  1161. XM`(X@!W(L3KH`O$'Y`````-'`2'C__R\(+SD````(3KH`7"`'<BQ.N@"<0?D`.
  1162. XM````T<!"ER\Y````""\(3KH`@$SM#/S_V$Y=3G4``$[Y````*$[Y```26$[Y&
  1163. XM````'$[Y`````$[Y````E$[Y`````$[Y````3$[Y```#Q$[Y`````$[Y````T
  1164. XM%$[Y````6$[Y````8$[Y````D$[Y`````$[Y````K$[Y````.$[Y```5I$[YQ
  1165. XM````'$[Y`````$[Y````,$[Y```2.$[Y````>````^P````#````````!T8`I
  1166. XM``=>```&[````"H````"```&S@``!K(```:.```&B```!G8```9P```&6```!
  1167. XM!3@```4R```%$@``!0P```4&```%````!/H```3@```$@@``!$H```0T```$>
  1168. XM$````]0```.R```#A@```W8```-F```#0@```S(```+J```"T@```FP```)0!
  1169. XM```"0@```>X```'@```!R@```;0```&>```!B````2X```#J````H````)@`-
  1170. XM``"`````$P````,```;$```&I```!=@```62```%;@```'0```!N````9@``Y
  1171. XM`&````!6````4````$@````^````-````"X````F````'@```!8````0````8
  1172. XM`0````0```=2`````0````8```!<`````P````<```12````K@```)`````!@
  1173. XM````"```!;H````"````"0``!P0```<0`````P````T```;F```''```!S0`.
  1174. XM```'````#@``!V0```<B```&_@``!SH```;R```&^```!T`````&````#P```
  1175. XM!U@```<6```'*```!RX```=,```'"@````````/R```#Z@```!D`````````_
  1176. XM`0`````@+4-U<G)E;G0@0V]L;W(M(``!``$````````````````,`````%)EB
  1177. XM9"```$=R;B```$)L=2```````#(````X````/@$``@``````````````````Y
  1178. XM```````#[`````0````"````3````$@```!$````*@````````/R```#ZP``:
  1179. XM`$T```/R```#Z0```%!.5?_F2.<W$"XO`#H@>0````@K:``^__A*K?_X9U@@)
  1180. XM;?_X,"@`)@Q``$)G,`Q``$=G&`Q``%)F-"!M__@@:``B0^@``BM)_^Q@(B!M:
  1181. XM__@@:``B0^@``BM)__1@$"!M__@@:``B0^@``BM)__`@;?_X*U#_^&"B('D`T
  1182. XM```(+R@`5DZZ`+!83R9`+"L`%"`+9P@O"TZZ`)A83W``(&W_[#`0X(#H@.&`1
  1183. XM<@`@;?_T,A#@@>B!Z8&`@7(`(&W_\#(0X('H@8"!*@`@!]"`0?D```!(T<!P(
  1184. XM`#`0L(5G0"!Y`````-#\`"P@!>"(<@_`@20%Z(K$@2(%=@_"@R\!+P(O`"\'3
  1185. XM+PA.N@`T3^\`%"`'T(!!^0```$C1P"`%,(!P0+Q`9@#_5G`!3-\([$Y=3G5.7
  1186. XM^0```"A.^0```!1.^0```#AP80```^P````"`````@```'@````.`````P``(
  1187. XM``<```#<```!$````,P````"````#0```2X```$T`````0````X```$Z````]
  1188. XM`````_(```/I````YTY5_^I(YS<P)F\`/DAY```!U"\K``1.N@,Z4$]*@&9$)
  1189. XM2'D````$3KH#/$AY````%4ZZ`S)03WX`(`?E@$'Y```!J")(T\!*D6<2(`?E(
  1190. XM@-'`+Q!.N@,06$]2AV#<0J=.N@,B6$\O*P`$3KH#$EA/+`!*AFX"?`!"ITAY8
  1191. XM```!V$ZZ`NI03R/````$,$J`9AQ(>0```>I(>0```%Q.N@*\2'@``4ZZ`MY/6
  1192. XM[P`,0J=(>0```?Q.N@*V4$\CP`````!F)B\Y```$,$ZZ`LQ(>0```@Y(>0``T
  1193. XM`%Q.N@*`2'@``DZZ`J)/[P`02H9G$"`&<C).N@*>+P!.N@*`6$\@>0``!#`CK
  1194. XMZ``X`````'``('D`````$"@`O2/`````!'X`<""^@&P^(`?0@$'Y````"-'`%
  1195. XM0_D```!(T\`O!R1Y`````"\J`#`O2``H+TD`+$ZZ`A)03R!O`"0P@"!O`"`PS
  1196. XM@%*'8+PO.0````!.N@((6$]^(%.';40@!]"`0?D````(T<`Z$"!Y`````-#\X
  1197. XM`"QP`#`%X(!R#\"!=``T!>B"Q(%V`#8%QH$O`R\"+P`O!R\(3KH!VD_O`!1@;
  1198. XMN"\Y`````$ZZ`=8NN0``!#!.N@',3.T,[/_.3EU.=4Y5__Y(YR$P)F\`&B1O]
  1199. XM`!XP$C(3LD!F"B!M`!`T$+1`9RK"_`$JP/P"3-*`(&T`$#`0P/P`<M*`(`$B2
  1200. XM/````^A.N@$V+@`VAS2',(=,WPR$3EU.=4Y5_]I(YS\0)F\`2BXO`$XL+P!2=
  1201. XM*@::AR`'T(`R,P@`)`'@2@)"``\F`>A+`D,`#P)!``\@!M"`>``X,P@`.T'_S
  1202. XMZB($X(%X#\*$>``X`I*$>``X,P@`*T'_^"($Z($[0O_N=`_"@G0`-`.2@G0`'
  1203. XM-`1P#\2`<``P+?_JE(!"K?_F*T'_]"M"__`[0__L("W_YK"%;```AB('TH`K\
  1204. XM0?_BTH$O00`<(BW_^$ZZ`+PB!4ZZ`'1R`#(M_^[2@'`/PH#A@2`M__0O00`@Q
  1205. XM(BW_YDZZ`)@B!4ZZ`%!R`#(M_^S2@'`/PH#I@20O`""$@2`M_^8B+?_P3KH`\
  1206. XM<B(%3KH`*G(`,BW_ZM*`<`_"@(2!("\`'#>""`!2K?_F8`#_=$S?"/Q.74YU=
  1207. XM``!.^0``$EA.^0``#"1.^0``$'!.^0```,1.^0``#HQ.^0```%!.^0````!.'
  1208. XM^0````!.^0``%2!.^0``$+!.^0```#A.^0``$CA.^0```#QP80```^P````'6
  1209. XM`````````TX```.0```#6@```WX```.$```#9@```U0````!`````0```W(``
  1210. XM```*````!@```;@```#,````N@```*X```"0````>@```#X````L````(@``3
  1211. XM``X````)````!P```8(```%X```!8@```3H```$P```!*````18```$,```!W
  1212. XM!`````8````+````T@```)8```'"````_````,(```"&`````0````P```-X,
  1213. XM`````@````T```.6```#;`````(````.```#B@```V`````````#\@```^H`Y
  1214. XM``"(`````%-E=&-O;&]R(#$N,2`@4$0`0G)I86X@36]F9F5T('-C;R%B<FEAH
  1215. XM;FT``'-E=&-O;&]R(%LM;G5M70`)+6YU;3H@;G5M8F5R(&]F('-E8V]N9',@H
  1216. XM=&\@9&5L87D@8F5F;W)E(&%T=&%C:&EN9R!T;R!T:&4`"2`@("`@(&%C=&EV\
  1217. XM92!W:6YD;W<N`"!'861G970@1&5F:6YI=&EO;G,Z```)0B]7.B!M86ME('1H2
  1218. XM92!P86QE='1E(&$@9W)E>2!S8V%L92!P86QE='1E``E3;65A<CH@8FQE;F0@#
  1219. XM9G)O;2!C;VQO<B`Q("AL971T97)S(&EN(&)O>"D@=&\@8V]L;W(@,@``"45XR
  1220. XM8VAA;F=E.B!E>&-H86YG92!C;VQO<B`Q(&%N9"!C;VQO<B`R``E#;W!Y.B!C8
  1221. XM;W!Y(&-O;&]R(#$@86YD(&-O;&]R(#(`"4]+.B!3970@=&AE('!A;&5T=&4@%
  1222. XM=VET:"!Y;W5R(&YE=R!C;VQO<G,`"55N9&\Z(')E<V5T(&-O;&]R<R!F<F]MI
  1223. XM(&QA<W0@3TL@;W(@8F5G:6YN:6YG`````"X````^````>````(X```"D````V
  1224. XMT````0@```$P```!4````7H`````+6@``&EN='5I=&EO;BYL:6)R87)Y`$5RH
  1225. XM<F]R($]P96YI;F<@24(*`&=R87!H:6-S+FQI8G)A<GD``$5R<F]R($]P96YI1
  1226. XM;F<@1T(*`````^P````*````!@```<P```'(```!Q````<````&\```!N```9
  1227. XM`;0```&P```!K````:@````````#\@```^L````B```#\D```^H````#____C
  1228. XM____________```#\@```^D```&@3E7_\DCG-S`F;P`R,"L`)@1```%M``.F&
  1229. XM#$``!FP``Y[E0$[[``)@```68```T&```7A@``(F8``"5&```O!^`'`!(CD`H
  1230. XM```$XZ"^@&P``VX@!]"`0?D```!((DC3P#(1X$D"00`/.T'__B)(T\`R$>A)`
  1231. XM`D$`#SM!__S1P#`0`D``#SM`__I(;?_Z2&W__$AM__Y.N@723^\`#"`'T(!!0
  1232. XM^0```$C1P#`M__X"0``/X4`R+?_\`D$`#^E!@$$R+?_Z`D$`#X!!,(`O.0``X
  1233. XM``A.N@6B<@`R+?_^=``T+?_\=@`V+?_Z+H,O`B\!+P<O`$ZZ!7Q/[P`44H=@R
  1234. XM`/]&(#D````$(CD`````LH!O%"\!+P!(>0```$A.N@4\3^\`#&`2+P`O`4AY_
  1235. XM````2$ZZ!2A/[P`,?`!P`2(Y````!..@O(!L``)Z(`;0@$'Y````2")(T\`RA
  1236. XM$>!)*@$"10`/(DC3P#(1Z$D"00`/T<`P$`)```\O.0````@[0/_V.T'_^$ZZ[
  1237. XM!/)R`#(%=``T+?_X=@`V+?_V+H,O`B\!+P8O`$ZZ!,Y/[P`44H9@C"`Y````X
  1238. XM`-"`0?D```!((DC3P'(`,A$B2-/`(#D````$T(`D2-7`,I+1P#"!0JW_^"M!'
  1239. XM__QP`2(Y````!..@(BW_^+*`;``!SM*!0?D```!((DC3P3`1X$@"0``/(DC3+
  1240. XMP301Z$H"0@`/T<$R$`)!``\O.0````@[0/_V.T'_\CM"__1.N@1&<@`R+?_V&
  1241. XM=``T+?_T=@`V+?_R+H,O`B\!+RW_^"\`3KH$'D_O`!12K?_X8()"K?_\<`$BW
  1242. XM.0````3CH"(M__RR@&P``4S2@4'Y````"-'!0_D```!(T\$PD5*M__Q@TB`YZ
  1243. XM````!-"`0?D```!((DC3P"`Y`````-"`T<`RD$*M__QP`2(Y````!..@(BW_:
  1244. XM_+*`;```_-*!0?D```!((DC3P3`1X$@"0``/(DC3P301Z$H"0@`/T<$R$`)!"
  1245. XM``\O.0````@[0/_Z.T'_]CM"__A.N@-T<@`R+?_Z=``T+?_X=@`V+?_V+H,O;
  1246. XM`B\!+RW__"\`3KH#3$_O`!12K?_\8()"K?_\<`$B.0````3CH"(M__RR@&QZ<
  1247. XMTH%!^0```$@B2-/!1?D````(U<$RDB)(T\$P$>!(`D``#R)(T\$T$>A*`D(`D
  1248. XM#]'!,A`"00`/+SD````(.T#_^CM!__8[0O_X3KH"YG(`,BW_^G0`-"W_^'8`Z
  1249. XM-BW_]BZ#+P(O`2\M__PO`$ZZ`KY/[P`44JW__&``_W9,WPSL3EU.=2\+)F\`Y
  1250. XM""\+80``)BZ+80``9"Z+80``RBZ+80`!,"Z+80`!EBZ+80`!_%A/)E].=2\+G
  1251. XM)F\`"$'Y````!"/(````,B\(3KH"5C/`````($AX__](>0```!@O"TZZ`CI"Y
  1252. XMER\+2'D````83KH"2D_O`!@F7TYU3E7__"\+)F\`$$'Y````2B/(````>"\(W
  1253. XM3KH"#C/`````9C`Y````'$C`2'D````$+T``#$ZZ`?(B+P`,TH!:@3/!````W
  1254. XM8DAX__](>0```%XO"TZZ`<Y"ER\+2'D```!>3KH!WB9M__A.74YU3E7__"\+Y
  1255. XM)F\`$$'Y````E"/(````PB\(3KH!HC/`````L#`Y````8DC`2'D```!*+T``R
  1256. XM#$ZZ`88B+P`,TH!:@3/!````K$AX__](>0```*@O"TZZ`6)"ER\+2'D```"H-
  1257. XM3KH!<B9M__A.74YU3E7__"\+)F\`$$'Y````VB/(```!""\(3KH!-C/`````A
  1258. XM]C`Y````K$C`2'D```"4+T``#$ZZ`1HB+P`,TH!:@3/!````\DAX__](>0``U
  1259. XM`.XO"TZZ`/9"ER\+2'D```#N3KH!!B9M__A.74YU3E7__"\+)F\`$$'Y```!G
  1260. XM'B/(```!3"\(3KH`RC/````!.C`Y````\DC`2'D```#:+T``#$ZZ`*XB+P`,9
  1261. XMTH!:@3/!```!-DAX__](>0```3(O"TZZ`(I"ER\+2'D```$R3KH`FB9M__A.7
  1262. XM74YU3E7__"\+)F\`$$'Y```!9"/(```!DB\(3KH`7C/````!@#`Y```!-DC`S
  1263. XM2'D```$>+T``#$ZZ`$(B+P`,TH!:@3/!```!?$AX__](>0```7@O"TZZ`!Y"Z
  1264. XMER\+2'D```%X3KH`+B9M__A.74YU3OD```(H3OD`````3OD```"03OD```'4D
  1265. XM3OD````X3OD```!\3OD````P<&$```/L````"P````(```*@```!J@```00`8
  1266. XM``*.```!Q````/X```-Z```"[````AH```%R````R@````(````%```&5@``Z
  1267. XM!F@````3````!P```U````)V```#1@```L8```*6```"?@```?0```&R```!E
  1268. XM2@```28```$2````H````%8```,T```"L@```F(```'@```!.````$0````M4
  1269. XM````"@``!D0```8T```&*@``!A0```8,```&!@``!?H```7T```%V```!<@`8
  1270. XM``6^```%J```!:````6:```%C@``!8@```5L```%7```!5(```4\```%-```W
  1271. XM!2X```4B```%'```!0````3P```$Y@``!-````3(```$P@``!+8```2P```$V
  1272. XME```!(0```1Z```$9```!%P```16```$2@``!$0```0H```$&```!`X```0"R
  1273. XM```#_`````$````.```&;@````0````/```&>@``!EP```9B```&=```````9
  1274. XM``/R```#Z@```&E"+U<``0`"``````````````````````````````K_]P``6
  1275. XM``@`"0`!``$````````````````````````````!`````%-M96%R``$``@``/
  1276. XM`````````````$0````````````>__<````(``D``0`!````````````````K
  1277. XM`````````````@````!%>&-H86YG90```0`"````````````````B@``````R
  1278. XM`````![_]P````@`"0`!``$````````````````````````````#`````$-O<
  1279. XM<'D```$``@```````````````-0````````````>__<````(``D``0`!````G
  1280. XM````````````````````````!0````!/2P```0`"```````````````!&@``]
  1281. XM`````````![_]P````@`"0`!``$````````````````````````````$````K
  1282. XM`%5N9&\```$``@```````````````5X````````````>__<````(``D``0`!?
  1283. XM````````````````````````````!@````````/L````!@````H```%P```!W
  1284. XM*@```.8```"@````5@```!`````````#\@```^H```!X````*```````````8
  1285. XM````````````````````.@``````````````````````````````````````Z
  1286. XM`````%P`````````````````````````````````````````````````````<
  1287. XM`````````````````````````````````````(`````$`/__````#@`.````>
  1288. XM````$_P`````__\````$``0``````````````(C__P````0`!````````!08/
  1289. XM`````/__````!``$````````%"(``````"`@("`@("`@("@H*"@H("`@("`@D
  1290. XM("`@("`@("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`00
  1291. XM@8&!@8&!`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("`@("4
  1292. XM`@("`@("`@("`@("`A`0$!`@("`@("`@("`@*"@H*"@@("`@("`@("`@("`@"
  1293. XM("`@("!($!`0$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!W
  1294. XM`0$!`0$!`0$!`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@(";
  1295. XM`@("`@("$!`0$"````````(````#[`````,`````````T````+P```"4`````
  1296. XM`P````L```"L````.@```!@````````#\@```^D````%+PXL>0``!$`B+P`(Q
  1297. XM3J[_.BQ?3G4```/L`````0````L````$`````````_`````"7T1E;&%Y````%
  1298. XM`````````````_(```/I````&B\.+'D```(8("\`"$ZN_L(L7TYU+PXL>0``Z
  1299. XM`A@@;P`(3J[^C"Q?3G4O#BQY```"&")O``A.KOZ&+%].=2\.+'D```(8(F\`U
  1300. XM"$ZN_F(L7TYU+PXL>0```A@B;P`(("\`#$ZN_=@L7TYU```#[`````4````+`
  1301. XM````5````$`````L````&`````0````````#\`````-?3W!E;DQI8G)A<GD`8
  1302. XM``!0````!%]#;&]S94QI8G)A<GD````````\`````U]297!L>4US9P``````/
  1303. XM`"@````"7T=E=$US9P`````4`````E]786ET``````````````````/R```#2
  1304. XMZ0```#<O#BQY`````")O``A,[P`#``Q.KO\0+%].=0``+PXL>0`````B;P`(Y
  1305. XM3.\``P`,3J[_"BQ?3G4``$CG,`(L>0`````@;P`03.\`#P`43J[^X$S?0`Q._
  1306. XM=0``2.<P`BQY`````")O`!!,[P`/`!1.KO[.3-]`#$YU```O#BQY`````")OO
  1307. XM``A,[P`#``Q.KO["+%].=0``+PXL>0`````B;P`(("\`#$ZN_JHL7TYU+PXL-
  1308. XM>0`````B;P`(("\`#$ZN_IXL7TYU+PXL>0`````@;P`(("\`#$ZN_;HL7TYUH
  1309. XM```#[`````@````&````R````+````"8````?````%X````^````(`````0`)
  1310. XM```````#\`````)?1V5T4D="-````,0````"7U-E=$1R360```"L`````E]3;
  1311. XM971!4&5N````E`````-?4F5A9%!I>&5L``````!X`````U]296-T1FEL;```@
  1312. XM`````%@````"7U-E=%)'0C0````X`````E]$<F%W````````'`````)?36]V*
  1313. XM90`````````````````#\@```^D````I+PXL>0``!#!,[P,```@@+P`03J[_E
  1314. XMUBQ?3G4``"\.+'D```0P(&\`"$ZN_[@L7TYU2.<`(BQY```$,$SO!P``#$ZN&
  1315. XM_T9,WT0`3G4``"\.+'D```0P(&\`"$ZN_S0L7TYU+PXL>0``!#!,[P,```A,)
  1316. XM[P`#`!!.KO\H+%].=2\.+'D```0P(&\`"$ZN_M0L7TYU+PXL>0``!#`@;P`(I
  1317. XM3J[^MBQ?3G4```/L````!P````L```"4````@````&0```!0````-@```"``=
  1318. XM```$`````````_`````$7TEN='5I5&5X=$QE;F=T:````)`````$7U9I97=0(
  1319. XM;W)T061D<F5S<P```'P````#7U!R:6YT251E>'0`````8`````-?3W!E;E=I(
  1320. XM;F1O=P````!,`````U]/;D=A9&=E=````````#`````#7T-L;W-E5VEN9&]WO
  1321. X@````'`````-?061D1V%D9V5T`````````````````_(#+
  1322. X``
  1323. Xend
  1324. Xsize 14792
  1325. SHAR_EOF
  1326. echo "End of archive 1 (of 1)"
  1327. # if you want to concatenate archives, remove anything after this line
  1328. exit
  1329.